package proxy_;

/*
如果要使用JDK的动态代理, 这个代理类必须要有接口, 否则会报错
 */
public class UserDaoImpl extends Person implements UserDao {

    /*
    @Override标识了当前方法是重写的方法,就要满足重写的规则
    如果方法的定义有问题, 可以第一时间发现
     */
    @Override
    public void eat() {
        super.eat();
    }

    /*
        需要在原来的方法里面添加新的功能
        1, 如果添加的功能和当前方法强耦合, 比如说拓展add方法, 直接修改当前方法就可以了
        2, 如果我们添加的是一块通用的功能, 比如打印log, 会在当前系统里面的很多方法都会打印, 可以使用动态代理
         */
    @Override
    public void add() {
        // 调用方法...
        System.out.println("user add...");


    }

    @Override
    public void delete() {
        System.out.println("user delete...");
    }

    @Override
    public void update() {
        System.out.println("user update...");
    }

    @Override
    public String query(int condition) {
        System.out.println("user query...");
        return condition + "------" + "{'name': 'zhangsan', 'age': 25}";
    }
}
